package unq.edu.cui.tp.dominio;

import java.util.Date;

import org.uqbar.commons.model.UserException;
import org.uqbar.commons.utils.Observable;
@Observable
public class Empleado {
	
	private String nombre;
	private String apellido;
	private Integer legajo;
	private Disponibilidad disponibilidad;
	
	/*
	 * Agregar una disponibilidad
	 */
	public void agregarDiaDisponible(Dia dia) {
		this.getDisponibilidad().agregarDiaDisponible(dia);
		
	}
	
	public String diasDisponiblesVista(){
		String ret = "";
		for(Dia d : this.getDisponibilidad().getDiasDisponibles()){
			ret = ret + " " + d.getNombreDia().toLowerCase().substring(0, 2) + " " ;
		}
		return ret; 
	}
	/*
	 * Eliminar una restriccion
	 */

	public void eliminarRestriccion(Date fecha) {
		this.getDisponibilidad().eliminarRestriccion(fecha);
		
	}
		
	// ********************************************************
	// ** Accessors
	// ********************************************************
	
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public Integer getLegajo() {
		return legajo;
	}
	public void setLegajo(Integer legajo) {
		this.legajo = legajo;
	}
	public Disponibilidad getDisponibilidad() {
		return disponibilidad;
	}
	public void setDisponibilidad(Disponibilidad disponibilidad) {
		this.disponibilidad = disponibilidad;
	}
	public String getApellido() {
		return apellido;
	}
	public void setApellido(String apellido) {
		this.apellido = apellido;
	}
	public String getNombreApellido(){
		return (this.getNombre() +" "+this.getApellido() );
	}
	public String toString(){
		return (this.getNombreApellido() );
	}
	public String getNombreCompleto(){
		String ret = this.getNombre() + " " + this.getApellido();
		return ret;
	}
	
	public boolean isDisponible(){
		//TODO
		return true;
	}
	// *****************************
	// ** Constructors
	// ********************************************************
	public Empleado(String nombre, String apellido, Integer legajo,
			Disponibilidad disponibilidad) {
		super();
		this.nombre = nombre;
		this.apellido = apellido;
		this.legajo = legajo;
		this.disponibilidad = disponibilidad;
	}

	public Empleado() {
		this.disponibilidad = new Disponibilidad();
	}


}